<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

// @TODO: Get results only where they are set to active

class Bangdiem_model extends CI_Model
{
	protected $_table;	    
	/**
	 * Constructor
	 *
	 * @access	public
	 */
	function __construct()
	{
		parent::__construct();
		$this->load->helper('date');
	}
	
	// Thêm điểm vào bảng chi tiết điểm, bảng điểm
	function add_diem($results)
	{
		foreach ($results as $result)
		{
			$idloaidiem = $this->input->post('loaidiem');
			$idlop = $this->input->post('lophoc');
			$idmon = $this->input->post('monhoc');
			$diemso = $this->input->post('diem_'.$result);
			$bangdiemid = $this->add_bangdiem($idmon,$result,$idlop);
			$this->add_chitietdiem($idloaidiem,$diemso, $bangdiemid);
		}
	}
	
	
	function edit_monhoc($id)
	{
		$data = array(
				'tenmon' => $this->input->post('tenmon'),
				'lythuyet' => $this->input->post('lythuyet'),
				'thuchanh' => $this->input->post('thuchanh'),
				'sotinchi' => $this->input->post('sotinchi'),
				'id_khoa' => $this->input->post('khoa'),
				'edited_by' =>$this->user->id,
				'id_gv' => $this->input->post('giaovien'),
				'status' => $this->input->post('status'),
		);
		$this->db->set($data);
		$this->db->where('id',$id);
		$this->db->update('monhoc');
	}
	
	// dem tong so mon hoc hien co
	function count_all_bangdiem($status = '')
	{
		$this->db->select('id');
		$this->db->from('monhoc');
		$this->db->where('deleted',0);
		if($status != "")
		{
			$this->db->where('status',$status);
		}
		return $this->db->count_all_results();
	}
	
	
	public function join3($idlop, $idmon)
	{
		$this->db->select('bangdiem.id_mon, bangdiem.id_lop, bangdiem.id_hv, chitietdiem.diemso');
		$this->db->from('bangdiem', 'chitietdiem', 'bangloaidiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->join('bangloaidiem','bangloaidiem.id = chitietdiem.idloaidiem');
		$this->db->where('bangdiem.id_lop',$idlop);
		$this->db->where('bangdiem.id_mon',$idmon);
		$query = $this->db->get();
		return $query->result_array(); 
	}
	
	function get_chitietdiemdanhap($idlop, $idmon)
	{
		$this->db->select('bangdiem.id_mon, bangdiem.id_lop, bangdiem.id_hv, chitietdiem.diemso, chitietdiem.id, chitietdiem.idloaddiem');
		$this->db->from('bangdiem', 'chitietdiem', 'bangloaidiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->join('bangloaidiem','bangloaidiem.id = chitietdiem.idloaidiem');
		$this->db->where('bangdiem.id_lop',$idlop);
		$this->db->where('bangdiem.id_mon',$idmon);
		$this->db->group_by();
		$query = $this->db->get();
		return $query->result_array();
	}
	
	/*
	 * Lấy tất cả loại điểm theo môn học dựa trên số tín chỉ của từng môn)
	 */
	function ajaxget_loaidiem($id_mon,$id_lop)
	{
		$data_sotinchi = $this->get_sotinchi_monhoc($id_mon);
		$sotinchi = $data_sotinchi->sotinchi;
		$solankiemtra = round($sotinchi/15);// số lần kiểm tra tương ứng 1->9 lần, 15 chỉ 1 lần
		
		$solandakiemtra = $this->get_solandakiemtra($id_mon,$id_lop);
		//if($solandakiemtra =='')
		//{
			//$solandakiemtra = 0;
		//}
		$lophocs = array();
		$lophocs[0]['solandakt'] = (int) $solandakiemtra;
		$lophocs[0]['solankt'] = $solankiemtra;
	
		// Khởi tạo Json cho so lan kiem tra
		$j =1;
		for($i=1;$i<$solankiemtra+1;$i++)
		{
			$item['id'] = $i;
			$item['tenloaidiem'] = 'Kiểm tra lần thứ '.$i;
			$item['type']		=	1;
			$lophocs[$i] = $item;
			$j++;
		}
		// Khoi tạo Json cho bai thi
		$item['id'] = $j;
		$item['tenloaidiem'] = 'Điểm thi ';
		$item['type']		=	2;
		$lophocs[$j] = $item;
		
		return $lophocs;
		/*
		if($query->result()){
			
			foreach ($rs1 as $city) {
				$item['id'] = $city->id;
				$item['tenloaidiem'] = $city->tenloaidiem;
				$lophocs[$item['id']] = $item;
			}
			
			foreach ($rs2 as $city) {
				$item['id'] = $city->id;
				$item['tenloaidiem'] = $city->tenloaidiem;
				$lophocs[$item['id']] = $item;
				
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
		*/
	}
	
	function get_solandakiemtra($id_mon,$id_lop)
	{
		$this->db->select_max('chitietdiem.solandakiemtra');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_lop',$id_lop);
		$this->db->where('bangdiem.id_mon',$id_mon);
		$query = $this->db->get();
		 $rs = $query->row();
		 return $rs->solandakiemtra;
	}
	
	function get_students_by_class($lopid)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh');
		$this->db->from('hocvien','hocvien_lophoc','lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->join('lophoc','lophoc.id = hocvien_lophoc.idlop');
		$this->db->where('hocvien_lophoc.idlop',$lopid);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	
	/*
	 * Lấy danh bảng điểm môn X của lớp Y có z học sinh
	 */
	
	function  get_tableOfMarkbyTheClassTheSubject($monID,$lopID)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh, bangdiem.diemtrungbinh');
		$this->db->from('hocvien','bangdiem');
		$this->db->join('bangdiem','bangdiem.id_hv = hocvien.id');
		$this->db->where('bangdiem.id_lop',$lopID);
		$this->db->where('bangdiem.id_mon',$monID);
		$this->db->order_by('hocvien.sort');
		//$this->db->order_by('hocvien.lastname');
		$query = $this->db->get();
		return $query->result_array();
	}
	
	function get_mark_of_students_by_class_subject_solandaktra($id, $mon_id, $lop_id, $type)
	{
		$this->db->select('hocvien.mahv, hocvien.tenhv, hocvien.cmnd, hocvien.ngaysinh, chitietdiem.diemso, chitietdiem.id');
		$this->db->from('hocvien','bangdiem','chitietdiem');
		$this->db->join('bangdiem','bangdiem.id_hv = hocvien.id');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_lop',$lop_id);
		$this->db->where('bangdiem.id_mon',$mon_id);
		$this->db->where('chitietdiem.type',$type);
		$this->db->where('chitietdiem.solandakiemtra',$id);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	// Sửa chi tiết điểm theo môn và số lần kiểm tra hoặc điểm thi
	/*
	 * Edited by ManhVT hỗ trợ nhập điểm
	 */
	function edit_chitietdiem($results,$monID, $lopID)
	{
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$olddiemso = $this->input->post('old_diem_'.$result);
			if($diemso != $olddiemso)
			{
				$this->edit_diem($monID,$lopID,$result,$diemso);
			}
		}
	}
	
	function edit_diem($monID,$lopID,$studentID,$diemso)
	{
		$data = array(
				'diemtrungbinh'	=>	$diemso,
					
		);
		$this->db->set($data);
		$this->db->where('id_mon',$monID);
		$this->db->where('id_lop',$lopID);
		$this->db->where('id_hv',$studentID);
		$this->db->update('bangdiem');
	}
	/*
	function edit_chitietdiem($results,$mon_id, $lop_id)
	{
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$data = array(
					'diemso'	=>	$diemso,
					
			);
			
			$this->db->where('id',$result);
			$this->db->set($data);
			$this->db->update('chitietdiem');
			
			$key = $this->get_idhv_by_chitietdiemid($result); //result = chietietdiemid
			$idhv = $key->id_hv;
			$bangdiemid = $key->id;
			// bat dau update lai diem tb khi da sua diem thanh cong
			$tongdiemkiemtra  = $this->get_sum_mark($mon_id, $lop_id, $idhv);
			$diemhetmon  = $this->get_end_mark($mon_id, $lop_id, $idhv);
			$endmark = $diemhetmon->diemso;
			$sumkiemtra = $tongdiemkiemtra->diemso;
			
			//echo $tongdiemkiemtra; exit();
				
			$data_sotinchi = $this->get_sotinchi_monhoc($mon_id);
				
			$sotinchi = $data_sotinchi->sotinchi;
			$solanktra = round($sotinchi/15);
			//echo $sumkiemtra.'-'.$endmark.'-'.$solanktra;
			$dtb= round(((2*$sumkiemtra) + (3*$endmark))/((2*$solanktra)+3),1);
			//echo $dtb;
			//exit();
			$data2 = array(
					'diemtrungbinh' => $dtb,
			);
				
			$this->db->where('id',$bangdiemid);
			$this->db->set($data2);
			$this->db->update('bangdiem');
		}
		
		
	}
	*/
	
	function get_idhv_by_chitietdiemid($chitietdiemid)
	{
		$this->db->select('bangdiem.id, bangdiem.id_hv');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('chitietdiem.id',$chitietdiemid);
		$query = $this->db->get();
		$result = $query->row();
		return $result;
	}
	
	//Kiểm tra xem môn học của lớp nào đó được nhập vào bảng điểm lần nào hay chưa, 
	//nếu có rồi thì lấy id bảng điểm add vào chi tiết điểm,
	//nếu chưa có thì thêm mới vào rồi lấy idbangdiem gán sang chitietdiem
	public function check_mon_lop_from_bangdiem($mon_id, $lop_id, $id_hv)
	{
		//$alias = strtolower(auto_alias($this->input->post('alias')));
		$query =  "(
		SELECT id
		FROM bangdiem WHERE id_mon ='$mon_id' AND id_lop = '$lop_id' AND id_hv='$id_hv' )";
		$result = $this->db->query($query);
		if($result->num_rows() >= 1)
		{
			$data = $result->row();
			return $data->id;
		}
		else
		{
			return 0;
		}
	}
	
	// thêm vào bảng chi tiết điểm
	function add_chitietdiem($mon_id, $lop_id, $results)
	{
		foreach ($results as $result)
		{
			$diemso = $this->input->post('diem_'.$result);
			$bangdiemid = $this->add_bangdiem($mon_id,$result,$lop_id,$diemso);
		}
	}
	
	function get_sum_mark($mon_id, $lop_id, $idhv)
	{
		$this->db->select_sum('chitietdiem.diemso');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_mon',$mon_id);
		$this->db->where('bangdiem.id_lop',$lop_id);
		$this->db->where('bangdiem.id_hv',$idhv);
		$this->db->where('chitietdiem.type',1);
		$query = $this->db->get();
		return $query->row();
	}
	
	function get_end_mark($mon_id, $lop_id, $idhv)
	{
		$this->db->select_sum('chitietdiem.diemso');
		$this->db->from('bangdiem','chitietdiem');
		$this->db->join('chitietdiem','chitietdiem.idbangdiem = bangdiem.id');
		$this->db->where('bangdiem.id_mon',$mon_id);
		$this->db->where('bangdiem.id_lop',$lop_id);
		$this->db->where('bangdiem.id_hv',$idhv);
		$this->db->where('chitietdiem.type',2);
		$query = $this->db->get();
		return $query->row();
	}
	
	// thêm vào bảng điểm
	function add_bangdiem($idmon, $idhv, $idlop,$diem)
	{
		//Kiểm tra nếu đã tồn tại thì lấy luôn bảng điểm ID
		//nếu chưa có thì insert vào bảng điểm và trả về idbangdiem vừa được thêm vào
		$key = $this->check_mon_lop_from_bangdiem($idmon, $idlop,$idhv);
		if($key !=0)
		{
			return $key;
		}
		
		else 
		{
			$data = array(
					'id_mon' => $idmon,
					'id_hv' => $idhv,
					'id_lop'	=>	$idlop,
					'diemtrungbinh'=>$diem
			);
			$this->db->set($data);
			$this->db->insert('bangdiem');
			return $this->db->insert_id();
		}
		
	}
	
	public function get_student_by_class($idlop)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.ngaysinh,hocvien.thuongtru, hocvien.lopids');
		$this->db->from('hocvien','hocvien_lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->order_by('hocvien.sort','asc');
		//$this->db->order_by('hocvien.lastname','asc');
		$this->db->where('hocvien_lophoc.idlop',$idlop);
		$query = $this->db->get();
		$rss = $query->result_array();
		$return = array();
		foreach($rss as $rs)
		{
			$lopids = json_decode($rs['lopids'],true);
			$kind = '';
			if($lopids)
			{
				foreach($lopids as $iditem)
				{
					if($iditem['idlop']==$idlop)
					{
						$kind = $iditem['kind'];
					}
				}
			}
			if($kind == '')
			{
				$kind = 0;
			}
			$rs['kind'] = $kind;
			$return[] = $this->get_bangdiem_canhan($rs,$idlop);
		}
		//var_dump($return[1]);
		return $return;
	}
	
	/*
	 * Lấy loại lớp 
	 */
	function get_clType($idlop)
	{
		$this->db->select('*');
		$this->db->from('lophoc');
		$this->db->where('lophoc.id',$idlop);
		$query = $this->db->get();
		$rss = $query->result_array();
		if($rss != null)
		{
			return $rss[0]['type'];
		}
		return null;
	}
	/*
	 *  Lấy danh sách điểm gồm cả điểm tb và tổng kết
	 */
	
	function get_bangdiem_canhan($rs,$idlop)
	{
		$item = array();
		$item = $rs;
		//var_dump($item);
		$type = $this->get_clType($idlop);
		$listsubjects = $this->view_bangdiem_canhan($rs['id'],$idlop);
		//var_dump($listsubjects);
		//echo count($listsubjects);exit();
		// Lây danh sách môn học	
		$listSubjs = array();   // danh sách các môn học còn lại
		$thesixSubjs = array(); // 6 môn đầu tiên
		foreach($listsubjects as $subject)
		{
			if($subject['order'] < 200 && $subject['order'] > 10)
			{
				$listSubjs[] = $subject;
			}
		}
		
		foreach($listsubjects as $subject)
		{
			if($subject['order'] < 10)
			{
				$thesixSubjs[] = $subject;
			}
		}
			
		$listExams = array(); // Danh sách các môn thi
			
		foreach($listsubjects as $subject)
		{
			if($subject['order'] > 200)
			{
				$listExams[] = $subject;
			}
		}
		//var_dump($listsubjects); exit();
		//$countObjs = $this->count_all_subject_by_class($idlop);
		// Đếm tất cả các môn học gồm cả môn thi
		$countObjs = count($listsubjects);
		//echo count($listSubjs).'ss'.$countObjs; exit();
		$flag1 = 0;// nếu bật 1 tức là không đạt thoát luôn khỏi vòng lặp
			
		if($type == 1)// Tính điểm theo SCN
		{
			//if(count($listSubjs) == $countObjs - 1)//đã nhập đủ bảng điểm
			//{
					$diem = 0;
					$heso = 0;
					$flag = 0;
					foreach($listSubjs as $subj)
					{
						$diem = $diem + $subj['diemtrungbinh'];
						$heso = $heso + 1;
						if($subj['diemtrungbinh'] < 5)
						{
							$flag = -1;
						}
					}
					$item['flag'] = $flag;
					
					if($heso == 0) // đảm bảo rằng heso luôn khác không.
					{
						$heso = 1;
					}
					if($listExams != null)
					{
						$diem = $diem + 2*$listExams[0]['diemtrungbinh'];
						$item['dtb'] = $diem/($heso+2);
						$item['dtk'] = round($diem/($heso+2),1);
						if($item['dtk'] < 5)
						{
							$item['xeploai'] = 'Không đạt';
						}
						elseif($item['dtk'] < 6)
						{
							$item['xeploai'] = 'TB';
						}
						elseif($item['dtk'] < 7) {
							$item['xeploai'] = 'TBK';
						}
						elseif($item['dtk'] < 8) {
							$item['xeploai'] = 'Khá';
						}
						elseif($item['dtk'] < 9) {
							$item['xeploai'] = 'Giỏi';
						}
						elseif($item['dtk'] <= 10) {
							$item['xeploai'] = 'Xuất sắc';
						}else 
						{
							$item['xeploai'] = $item['dtk'];
						}
					}
					else
					{
						$item['dtb'] = $diem/($heso+2);
						$item['dtk'] = $diem/($heso+2);
						$item['xeploai'] = 'N/A';
					}
			//		}
			//}
			//else
			//{
			//	$item['dtb'] = 'N/A';
			//	$item['dtk'] = 'N/A';
			//	$item['xeploai'] = $item['dtk'];
			//}
			$item['monhocs'] = $listSubjs;
			$item['exams'] = $listExams;
			
		}
		else // Không phải SCN
		{
			foreach($thesixSubjs as $j)
			{
				if($j['diemtrungbinh'] < 5)
				{
					$flag1 = 1;
				}
			}
			//echo $flag;
			if($flag1 == 1)
			{
				$item['flag'] = -1;
				$diem = 0;
					$heso = 0;
				foreach($listSubjs as $subj)
				{
					$diem = $diem + $subj['diemtrungbinh']*$subj['heso'];
					$heso = $heso + $subj['heso'];					
				}
				$item['dtb'] = $diem/$heso;
			}
			else
			{
				//echo count($listSubjs) . '-' . $countObjs . "</br>";
				$flag = 0;
				//if(count($listSubjs) == $countObjs - 9)
				//{
					// tính điểm tb - khi đã nhập đầy đủ bảng điểm các môn
					// Kiểm tra xem có môn nào < 5 không, không tính điểm trung bình, điểm tb = 0, không đạt
					$diem = 0;
					$heso = 0;
					
					foreach($listSubjs as $subj)
					{
						$diem = $diem + $subj['diemtrungbinh']*$subj['heso'];
						$heso = $heso + $subj['heso'];
						if($subj['diemtrungbinh'] < 5)
						{
							$flag = 1;
						}
					}
					if($flag == 1)
					{
						//default = -1; trường hợp này vẫn hiển thị điểm trung bình ngay cả khi có điểm 1 môn bất kỳ  < 5
						$item['dtb'] = $diem/$heso;
						$item['flag'] = -1;
					}
					else
					{
						if($heso == 0) // đảm bảo rằng heso luôn khác không.
						{
							$heso = 1;
						}
						$item['dtb'] = $diem/$heso;
						$item['flag'] = 0;
					}
				//}
				//else 
				//{
				//	$item['dtb'] = '0';
				//}
			}
			$item['6mon'] = $thesixSubjs;
			$item['monhocs'] = $listSubjs;
			$item['exams'] = $listExams;
			// Nếu nhập đủ điểm thi tính điểm tổng kết để xếp loại bằng
			//if($item['dtb'] != 0) // Nhập đủ các môn
			//{
				// Tính điểm tổng kết
				$dtk = 0;
				$hesotk = 0;
				$flagtk = 0;
				foreach($listExams as $exam)
				{
					$dtk = $dtk + $exam['heso']*$exam['diemtrungbinh'];
					$hesotk = $hesotk + $exam['heso'];
					if($exam['diemtrungbinh'] < 5)
					{
						$flagtk = 1;
					}
				}
				if($flagtk != 1)
				{
					$item['dtk'] = round((3*$item['dtb']+$dtk)/($hesotk + 3),1);
					
					if($item['dtk'] < 6)
					{
						$item['xeploai'] = 'TB';
					}
					elseif($item['dtk'] < 7) {
						$item['xeploai'] = 'TBK';
					}
					elseif($item['dtk'] < 8) {
						$item['xeploai'] = 'Khá';
					}
					elseif($item['dtk'] < 9) {
						$item['xeploai'] = 'Giỏi';
					}
					elseif($item['dtk'] <= 10) {
						$item['xeploai'] = 'Xuất sắc';
					}else 
					{
						$item['xeploai'] = $item['dtk'];
					}
				}
				else 
				{
					$item['dtk'] = 0;
					$item['xeploai'] = 'N/A';
				}
				
			//}
			//else {
			//	$item['dtk'] = 0;
			//	$item['xeploai'] = 'N/A';
			//}
		}
		return $item;
	}
	
	/*
	 * Lấy danh bảng điểm của một học sinh trong một lớp
	 */
	
	function view_bangdiem_canhan($hv_id,$lop_id)
	{
		$this->db->select('lophoc_monhoc.id,lophoc_monhoc.order, lophoc_monhoc.heso, bangdiem.diemtrungbinh, monhoc.tenmon, monhoc.mamon');
		$this->db->from('bangdiem','monhoc');
		$this->db->join('lophoc_monhoc','lophoc_monhoc.id_mon = bangdiem.id_mon');
		$this->db->join('monhoc','monhoc.id = bangdiem.id_mon');
		$this->db->where('lophoc_monhoc.id_lop',$lop_id);
		$this->db->where('bangdiem.id_hv',$hv_id);
		$this->db->where('lophoc_monhoc.id_lop','bangdiem.id_lop',FALSE);
		$query = $this->db->get();
		return $query->result_array();
	}
	
	/**
	 * 
	 * @param unknown $idlop
	 * @param string $order
	 * @param number $flag nếu 0 toán tử =; 1 toán tử <; bằng 2 toán tử > order
	 */
	public function get_subject_by_class($idlop,$order=null,$flag=0) 
	{
		$this->db->select('monhoc.id, monhoc.mamon, monhoc.tenmon, monhoc.sotinchi, lophoc_monhoc.id_lop,lophoc_monhoc.order,lophoc_monhoc.heso');
		$this->db->from('monhoc','lophoc_monhoc');
		$this->db->join('lophoc_monhoc','lophoc_monhoc.id_mon = monhoc.id');
		$this->db->order_by('lophoc_monhoc.order','asc');
		$this->db->where('lophoc_monhoc.id_lop',$idlop);
		if($order)
		{
			if($flag == 1)
			{
				$this->db->where('lophoc_monhoc.order <',$order);
			}
			elseif($flag == 2)
			{
				$this->db->where('lophoc_monhoc.order >',$order);
			}
			else {
				$this->db->where('lophoc_monhoc.order',$order);
			}
		}
		$query = $this->db->get();
		return $query->result_array();
	}
	
	public function count_all_subject_by_class($idlop)
	{
		$this->db->select('id1');
		$this->db->from('lophoc_monhoc');
		//$this->db->join('lophoc_monhoc','lophoc_monhoc.id_mon = monhoc.id');
		$this->db->where('id_lop',$idlop);
		return $this->db->count_all_results();
	}
	
	/* function ajaxget_loaidiem($id_mon)
	{
		$data_sotinchi = $this->get_sotinchi_monhoc($id_mon);
		$sotinchi = $data_sotinchi->sotinchi;
		$solankiemtra = round($sotinchi/15);// số lần kiểm tra tương ứng 1->9 lần, 15 chỉ 1 lần
		$this->db->select('*');
		$this->db->from('bangloaidiem');
		$this->db->order_by('id','asc');
		//$this->db->where('bangloaidiem.id_mon',$id_mon);
		$this->db->where('type',1);
		$this->db->limit($solankiemtra);
		$query = $this->db->get();
		$rs1 = $query->result();
	
		$this->db->select('*');
		$this->db->from('bangloaidiem');
		$this->db->order_by('id','asc');
		$this->db->where_not_in('type',1);
		$query = $this->db->get();
		$rs2 = $query->result_array();
		//return $query->result_array();
		$lophocs = array();
		if($query->result()){
			$lophocs[0] = "Chọn ...";
			foreach ($rs1 as $city) {
				$lophocs[$city->id] = $city->tenloaidiem;
			}
				
			foreach ($rs2 as $city) {
				$lophocs[$city['id']] = $city['tenloaidiem'];
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	} */
	
	/*
	 * Lấy tất cả các lớp theo năm
	*/
	function ajaxget_lop_byYear($year)
	{
		$this->db->select('id, malop, tenlop');
		$this->db->from('lophoc');
		$this->db->order_by('id','desc');
		$this->db->where('YEAR(lophoc.nambatdau)',$year);
		$this->db->where('deleted',0);
		$this->db->where('status',1);
		$query = $this->db->get();
		//return $query->result_array();
		$lophocs = array();
		if($query->result()){
			$lophocs[0] = "Chọn lớp học...";
			foreach ($query->result() as $city) {
				$lophocs[$city->id] = $city->tenlop;
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	}
	
	// Lấy môn học được biên chế theo lớp
	
	// Lấy các môn học được biên chế theo từng lớp
	function ajaxget_monhoc_bylop($id_lop)
	{
		$this->db->select('lophoc_monhoc.*, monhoc.mamon, monhoc.tenmon, monhoc.lythuyet, monhoc.thuchanh, monhoc.sotinchi');
		$this->db->from('lophoc_monhoc','monhoc');
		$this->db->join('monhoc','monhoc.id = lophoc_monhoc.id_mon');
		$this->db->where('monhoc.deleted',0);
		$this->db->where('monhoc.status',1);
		$this->db->where('lophoc_monhoc.id_lop',$id_lop);
		$query = $this->db->get();
		$lophocs = array();
		if($query->result()){
			$lophocs[0] = "Chọn môn học ...";
			foreach ($query->result() as $city) {
				$lophocs[$city->id_mon] = $city->tenmon;
			}
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	
	}
	
	// Lấy danh sách các sinh viên trong 1 lớp
	public function ajaxget_hocvien($id)
	{
		$this->db->select('hocvien.id, hocvien.mahv, hocvien.tenhv, hocvien.ngaysinh, hocvien.cmnd, hocvien_lophoc.idhv');
		$this->db->from('hocvien','hocvien_lophoc','lophoc');
		$this->db->join('hocvien_lophoc','hocvien_lophoc.idhv = hocvien.id');
		$this->db->join('lophoc','lophoc.id = hocvien_lophoc.idlop');
		$this->db->where('hocvien_lophoc.idlop',$id);
		
		$query = $this->db->get();
		$lophocs = array();
		if($query->result()){
			
			foreach ($query->result() as $hocvien) {
				$item['mahv'] = $hocvien->mahv;
				$item['tenhv'] = $hocvien->tenhv;
				$item['cmnd'] = $hocvien->cmnd;
				$item['idhv'] = $hocvien->idhv;
				$item['ngaysinh'] = date('d/m/Y', strtotime($hocvien->ngaysinh));
				$lophocs[$item['idhv']] = $item;
			}
			//var_dump($lophocs);
			return $lophocs;
		}
		else
		{
			return FALSE;
		}
	}
	
	function get_all_class($limit, $start) {
		$this->db->select('*');
		$this->db->from('lophoc');
		$this->db->limit($limit, $start);
		$this->db->order_by('id','desc');
		$query = $this->db->get();
		return $query->result_array();
	}
	
	function get_lop_info($idlop)
	{
		$this->db->select('id, malop, tenlop, type');
		$this->db->from('lophoc');
		$this->db->where('id',$idlop);
		$query = $this->db->get();
		return $query->row();
	}
	
	//lấy số tín chỉ của 1 môn
	function get_sotinchi_monhoc($idmon)
	{
		$this->db->select('sotinchi');
		$this->db->from('monhoc');
		$this->db->where('id',$idmon);
		$query = $this->db->get();
		return $query->row();
	}
	
	function count_all_lop()
	{
		$this->db->select('id');
		$this->db->from('lophoc');
		$this->db->where('deleted',0);
		return $this->db->count_all_results();
	}
	
	public function lockmh($id = null,$status = 1, $idlop)
	{
		$data = array
		(
				'lock'=> $status
		);
		$this->db->where('id_lop',$idlop);
		$this->db->where('id_mon',$id);
		$this->db->update('lophoc_monhoc',$data);
	}
}

/* Location: ./application/models/bangdiem_model.php */